package cn.myzqu.sign.project.server.utils;

import org.springframework.core.io.support.PropertiesLoaderUtils;

import java.io.IOException;
import java.util.Properties;

/**
 * Properties配置文件读取工具类
 * @Author: 的川
 * @Date: 2019/1/10.
 */
public class PropertiesUtil {


    /**
     * 读取默认配置文件的指定key的配置值
     * @param keyWord
     * @return
     */
    public static String getDefaultConfigValue(String keyWord){
        String filePath  = "config/config.properties";
        Properties prop = null;
        try {
            // 通过Spring中的PropertiesLoaderUtils工具类进行获取
            prop = PropertiesLoaderUtils.loadAllProperties(filePath);
        } catch (IOException e) {
            e.printStackTrace();
        }
        // 根据关键字查询相应的值
        String value = prop.getProperty(keyWord);
        return value;
    }

    /**
     * 读取默认配置文件的指定key的配置值
     * @param keyWord
     * @param defaultValue
     * @return
     */
    public static String getDefaultConfigValue(String keyWord, String defaultValue) {
        Properties prop = null;
        String filePath  = "config/config.properties";
        try {
            // 通过Spring中的PropertiesLoaderUtils工具类进行获取
            prop = PropertiesLoaderUtils.loadAllProperties(filePath);
        } catch (IOException e) {
            return defaultValue;
        }
        // 根据关键字查询相应的值
        String value = prop.getProperty(keyWord);
        return (value == null) ? defaultValue : value;
    }




    /**
     * 读取指定配置文件的指定key的配置值
     * 根据文件名使用spring中的工具类进行解析，filePath是相对路劲，文件需在classpath目录下
     * 比如：config.properties在包com.test.config下，路径就是com/test/config/config.properties
     * @param filePath 配置文件路径
     * @param keyWord 键
     * @return
     */
    public static String getConfigValue(String filePath, String keyWord){
        Properties prop = null;
        try {
            // 通过Spring中的PropertiesLoaderUtils工具类进行获取
            prop = PropertiesLoaderUtils.loadAllProperties(filePath);
        } catch (IOException e) {
            return null;
        }
        // 根据关键字查询相应的值
        String value = prop.getProperty(keyWord);
        return value;
    }

    /**
     * 读取指定配置文件的指定key的配置值
     * @param filePath 配置文件路径
     * @param keyWord 键
     * @param defaultValue 默认值
     * @return
     */
    public static String getConfigValue(String filePath, String keyWord, String defaultValue) {
        Properties prop = null;
        try {
            // 通过Spring中的PropertiesLoaderUtils工具类进行获取
            prop = PropertiesLoaderUtils.loadAllProperties(filePath);
        } catch (IOException e) {
            return defaultValue;
        }
        // 根据关键字查询相应的值
        String value = prop.getProperty(keyWord);
        return (value == null) ? defaultValue : value;
    }

}
